std::atan2

From Cppreference

Jump to: navigation, search
Defined in header <cmath>

float       atan2( float y, float x );

double      atan2( double y, double x );

long double atan2( long double y, long double x );

Computes the inverse tangent of y/x using the signs of arguments to correctly determine quadrant.

Contents

[edit] Parameters

x, y - floating point value

[edit] Return value

arc tangent of y/x in radians in the range of [-π; π] radians.

[edit] Example

#include <cmath>
#include <utility>
#include <iostream>
 
std::pair<double, double> cartesian_to_polar(double x, double y)
{
    return {std::hypot(x, y), std::atan2(y,x)};
}
 
int main()
{
    std::pair<double, double> polar = cartesian_to_polar(1, 1);
    std::cout << "(1,1) cartesian is (" << polar.first
               << "," << polar.second<< ") polar\n";
}

Output:

(1,1) cartesian is (1.41421,0.785398) polar


[edit] See also

computes arc tangent (arctan(x))
(function)
computes arc sine (arcsin(x))
(function)
computes arc cosine (arccos(x))
(function)
computes tangent (tan(x))
(function)
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
In other languages